The present invention relates to an agent for communication between a manager and at least one resource of a data processing system. The manager is also known as an administrative platform. The invention also relates to a library of tools for creating an agent. An agent of this type enables a manager of a data processing system to control, monitor and evaluate computing resources remotely. The invention also relates to a process for communicating between a manager and a resource using an agent that enables a manager of a data processing system to remotely control, monitor and evaluate computer resources.
It is known in the prior art that a distributed system is constituted by computing resources, which may be mainframes, workstations, bridges, routers, printers, operating systems, applications, etc. In short, any entity of the data processing system is considered to be a resource.
To administrate or manage a distributed system is to manage all of its resources. An administrative platform (or manager), which must have as complete, accurate and detailed a view as possible of the resources it has to manage, is used for this purpose.
This view of a resource is made possible by a model of the resource in question. The modeling of a resource is based, in particular, on an approach and a structuring of objects organized into a tree of management information. The model of a resource is managed by an agent capable of instantiating these objects with the help of information from the resource or from the administrative platform.
Because of the specificity of each resource, each agent must be created individually for each of its resources, and must contain the expertise for communicating with the manager, also called known as the protocol core, and the expertise of the system to be managed.
The known methods for developing an agent of the prior art consist of a programmer""s designing, in their entirety, the expertise for communicating with the manager and the expertise for communicating with the resource to be managed. In its development, the programmer is confronted with two types of problems, those linked to the protocol for communicating with the manager and those linked to the development of the expertise of the resource to be managed. Furthermore, these two types of expertise are not separated in the agent, resulting in problems in terms of performance, robustness, code quality, reliability, and development time for the agent, since the programmer is confronted with two problems at once and therefore, for each agent developed, the programmer must systematically develop the protocol core without being able to reuse it.
Hence, the first object of the present invention is to eliminate the drawbacks of the prior art by offering a simpler, faster agent, designed so as to be adaptable to different contexts and having great reliability.
This object is achieved by the fact that the agent for communication between a manager and at least one resource of a data processing system comprises a protocol core created automatically from a formalized description of the resource, this core, once created, comprising in compiled form a first interface for communicating with the manager and a model of the resource comprising the values of the instances of the resource, these values being accessible by the manager through the first communication interface.
According to another characteristic, the agent comprises, in a second interface, at least one method for accessing the resource for communicating with the protocol core and updating and/or reading at least one value of an instance of the model of the resource specific to the method, and for responding to requests from the core related to the updating of at least one instance value of the model of the resource.
According to another characteristic, the resource being modeled in the form of attributes, access to each attribute managed by the agent can be obtained in either a xe2x80x9cdirectxe2x80x9d mode or a xe2x80x9csignalxe2x80x9d mode, defined in a configuration file  less than agt greater than .confget.
According to another characteristic, when the access method uses sockets interface primitives, the configuration file includes an identifier of the method that is associated with the instance.
According to another characteristic, the formalized description of the resource is in the form of an MIB (management information base).
According to another characteristic, the model of the resource comprises a sorted database constructed from the formalized description of the resource.
According to another characteristic, the protocol core includes a compiled file containing sorted data for the management of objects specific to its operation.
According to another characteristic, the communication between the manager and the protocol core takes place in accordance with the Simple Network Management Protocol (SNMP) ASN1 (Abstract Syntax Notation One), by means of verbs that allow the operations for reading an instance (get), for reading the next instance (get-next) and for modifying an instance (set).
According to another characteristic, when the manager sends, in the same request, an operation for a modification (SET) on a list of instances, the core transmits instance modification messages (SET) one by one to the methods corresponding to each instance, the last message for modifying the last instance being transmitted by a modification message (SETLAST) indicating that it is the last instance in the list; as long as the method has not received the last message from the core, the modifications of the instances are stored, and as soon as the last message is received by the method, if all the modifications of the instances are possible, they are all validated, whereas if not, they are all cancelled.
According to another characteristic, the communication between each access method and the core takes place through online TCP/IP (Transmission Control Protocol/Internet Protocol) communication software.
According to another characteristic, the communication between the protocol core and at least one method for accessing the resources in the xe2x80x9csocketsxe2x80x9d mode takes place through two TCP/IP connection processes that communicate through sockets executable primitives, making it possible to perform the operations for reading the value of an instance (readInstSock), for modifying an instance (writeInstSock), for reading the next instance (readNextSock), for writing a new instance, and for deleting an instance.
According to another characteristic, the communication between two methods (12) of access to the resource (30) in the xe2x80x9csocketsxe2x80x9d mode is established by calling a function (notifyMeth).
According to another characteristic, the communication between the protocol core and at least one method for accessing the resources in the xe2x80x9cdirectxe2x80x9d modexe2x80x9d takes place through named pipes and executable primitives, making it possible to perform the operations for reading the value of an instance (readInstDirect), for modifying an instance (writeInstDirect), for reading the next instance (readNextDirect), for writing a new instance, and for deleting an instance.
According to another characteristic, the structure of each message related to an operation on an instance of the resource, and constructed by the protocol core of the agent to be sent to at least one method, comprises a field for identifying the instance, a field corresponding to the value of the instance, a code identifying the operation to be executed and a return code indicating whether the operation has been performed.
According to another characteristic, the manager and/or the method can create an instance in the model of the resource managed by the core, by means of a request sent to the core containing the verb (SET) for an instance modification on an instance that is no-existent in the model, the reception of this request by the core resulting in the creation of the instance.
According to another characteristic, the manager and/or the method can delete an instance in the model of the resource managed by the core by means of a request comprising the verb (SET) for modifying an instance, which assigns the name of the instance to be deleted to a predetermined, preexisting instance (gamdeleteObject) of the model of the resource, the reception of this request by the core resulting in the deletion of the instance.
According to another characteristic, the model of the resource included in the core is a database sorted in the lexicographical order of the protocol SNMP.
According to another characteristic, the model of the resource managed by the core is initialized by an instance file created by the user before the initialization of the core.
According to another characteristic, the successive modifications of at least one instance value of the model of the resource are stored in a backup file of predetermined maximum size.
According to another characteristic, a merge between the instance file and the backup file is performed before the initialization of the core, or when the backup file has reached the predetermined size, or when the user so desires, in order to create a new instance file containing the last values of the instances saved in the backup file and to create an empty backup file.
According to another characteristic, the values of the instances recorded in the backup file are accessible by a user before the merge with the instance file.
According to another characteristic, each line of the backup file corresponds to a modification, a deletion, a creation or a writing of an instance, and comprises a field containing the name of the instance, a field containing the value of this instance, and a field containing the identification of the type of operation performed on this instance.
According to another characteristic, prior to the merging of the instance file with the backup file, both of these files are copied onto the hard disk of the resource.
A second object of the invention is to provide a tool library that makes it possible to create a communication agent in a generic, simple and fast way.
This second object is achieved by the fact that the tool library for creating an agent for communication between a manager and at least one resource of a data processing system comprises a command which, from a formalized description of the resource, creates in the form of an executable program the protocol core of the communication agent that manages the resource.
According to another characteristic, the library comprises at least one development support function, which allows the user to develop methods of the resource capable of communicating with the protocol core and/or of updating at least one instance of the model of the resource and/or of reading at least one instance of the model of the resource.
A third object of the invention is to offer a process for communication between a manager and a resource using an agent according to the invention.
This object is achieved by the fact that the process for communication between a manager and a resource using the agent according to the invention comprises:
a first step for sending a request from the manager to the resource in order to read information of the resource, and
a second step for the decoding of the request by the core of the agent in order to determine the instance corresponding to the desired information and the mode for obtaining this instance.
According to another characteristic, if the mode for obtaining the instance is the xe2x80x9cdirectxe2x80x9d mode, the core of the agent constructs, then sends a request for a response to the manager, giving it the value of the instance existing in the model of the resource it manages.
According to another characteristic, if the mode for obtaining the instance is the xe2x80x9csignalxe2x80x9d mode, the core of the agent constructs, then sends a message to the method corresponding to the instance, in order to obtain the value of the instance.
The corollary subjects of the invention are a data processing system which includes at least one agent according to the invention and a medium for recording data such as a magnetic disk or a CD-ROM, and which incorporates a computer program for using an agent according to the invention and/or a tool library as defined above, and/or the process defined above for creating an agent according to the invention.